package com.yuw.service.userinfo.impl;

import com.yuw.bean.userinfo.UserInfoBean;
import com.yuw.dao.userinfo.UserInfoBeanMapper;
import com.yuw.service.userinfo.IUserInfoService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class UserInfoService implements IUserInfoService {
    // 注入mybatis的dao层
    //@Autowired
    @Resource
    UserInfoBeanMapper userInfoBeanMapper;

    @Override
    public UserInfoBean queryUserInfoById(Integer userid) {
        // 调用dao层进行数据库操作
        return userInfoBeanMapper.selectByPrimaryKey(userid);
    }

    @Override
    public int saveOrUpdateUserInfo(UserInfoBean userInfoBean) {
        int i = 0;

        // 调用dao层进行数据库操作
        // 修改的时候 参数实体类 userinfobean 主键字段 userId 不为null
        // 新增的时候 参数实体类 userinfobean 主键字段 userId 为null
        // 通过判断 参数实体类的主键字段是否为null，可以确定是进行新增操作还是进行修改操作
        if (userInfoBean != null && userInfoBean.getUserid() != null) {
            // 修改操作
            i = userInfoBeanMapper.updateByPrimaryKeySelective(userInfoBean);
        } else {
            // 新增操作
            i = userInfoBeanMapper.insertSelective(userInfoBean);
        }
        return i;
    }

    @Override
    public boolean doLogin(String userName, String userPsw) {
        // 登录业务逻辑验证处理
        // 调用dao层进行数据库操作
        List<UserInfoBean> lstUsers = userInfoBeanMapper.doLogin1(userName, userPsw);
        // 返回结果
        return lstUsers != null && lstUsers.size() > 0;
    }

    /**
     * 登录业务逻辑处理
     *
     * @param userInfoBean 参数实体类
     * @return 登陆验证结果
     */
    @Override
    public boolean doLogin(UserInfoBean userInfoBean) {
        // 登录业务逻辑验证处理
        // 调用dao层进行数据库操作
        List<UserInfoBean> lstUsers = userInfoBeanMapper.doLogin(userInfoBean);
        // 返回结果
        return lstUsers != null && lstUsers.size() > 0;
    }

    @Override
    public List<UserInfoBean> queryUserInfoByParams(UserInfoBean userInfoBean) {
        return userInfoBeanMapper.queryUserInfoByParams(userInfoBean);
    }

    @Override
    public int deleteUserInfoById(Integer uid) {
        // 逻辑删除操作
        int i = userInfoBeanMapper.deleteByPrimaryKeyLogic(uid);
        return i;
    }
}
